1. Technical Field
This disclosure generally relates to video decoding, and more particularly to motion compensation related reference picture fetch caching.
2. Related Art
Compression and encoding technologies are widely used in order to transmit and store still image data and moving image data with good efficiency. In the case of moving images, there are many known types of video compression, including those associated with the Motion Pictures Expert Group (“MPEG”) among others. However, for purposes of clarity by way of example and not limitation, MPEG terminology is used. The methods MPEG-1 to 4 or ITU (International Telecommunication Union) H.261 to H.264 are widely used for video compression.
In video compression, motion compensation may be used. Generally, a video sequence includes a number of pictures or frames. Frames in a sequence are often substantially similar, and thus contain a significant amount of redundant information. In order to reduce the amount of data needed to represent the video, redundant information may effectively be removed by using a reference frame and a number of residual frames. As residual frames are indexed to a reference frame, the residual frames may contain less information than the reference frame. Accordingly, the residual frames may be encoded at a lower bit rate with the same quality as associated original frames from which the residual frame were derived.
Although there are other approaches to approximate motion of an entire scene and objects in a video sequence which may produce higher quality residual frames than the motion compensation approach of subtracting differences between frames, the effective bit rate of higher quality video compression is significantly much larger.
Using the generalized MPEG approach, frames are processed in groups. One frame, often the first frame of a group of frames, is encoded without motion compensation as a reference frame. The reference frame, which is an intracoded frame (“I-frame” or “I-picture”) is combined with predicted frames (“P-frames or P-pictures”). One or more P-frames may be predicted from a preceding I-frame or P-frame.
Moreover, frames may be predicted from future frames. Predicted frames from future frames may be predicted from two directions, such as for example from an I-frame and a P-frame that respectively immediately precede and follow the bidirectionally predicted frame. Conventionally, bidirectionally predicted frames are called “B-frames” or “B-pictures”. Since MPEG video encoding is well known, further details regarding specifics of MPEG video encoding are not described.
One main goal in video compression is to reduce the effective bit rate of the encoded video stream. During playback, video decoding relies on similar scenes from previous and/or adjacent frames that have been encoded to produce a current frame. As such, decoding can rely heavily on previously accessed data. Intense data access can be directly associated with more power consumption, particularly in portable hand held device like smarts phones, phablets, tablets, laptops, etc. when their battery power is limited. Even with consumer appliances, desktop devices, TVs, video player, etc., reducing heavy data access is important not only from a power consumption standpoint, but from a performance standpoint. If a device can be operated at a lower frequency to accommodate more efficient data access, the entire system for the device can operate at the lower frequency. As more performance demand is required, there is built-in margin within the system than can afford the system to operate at an increased frequency for increased performance. The built-in margins also afford system designs that can have a longer product life cycle without the need to upgrade.
FIG. 1 illustrates a generalized prior art motion compensation apparatus or video coding using the H.264 video encoding standard that estimates a motion vector between pictures on a block-by-block basis. The motion compensation apparatus includes a command queue 2, motion compensation block 3, DRAM controller 4, and picture reconstruction block 5. The motion compensation apparatus receives a current picture to be decoded including a current block to be decoded, as well as a reference picture which is referred to for decoded motion vectors. Command queue 2 provides a series of commands to the motion compensation block 3, and based on the commands, the motion compensator block 3 sends requests to the DRAM controller to retrieve reference blocks from memory to interpolate the reference block based on the motion vectors of the current block. The interpolated data is sent to the picture reconstruction block 5 to reconstruct the picture based on the motion vector data.
The reduction of bit rate by the video encoder comes at the expense of increased DRAM bandwidth at the video decoder. DRAM access is general is resource and power intensive. What is needed is a video decoding apparatus that can effectively decode a video stream using motion vectors which uses less system resource utilization and power consumption of previous decoder systems.